package com.fl.nj.service;

import com.fl.nj.entity.TableColumn;

import java.util.List;

/**
 * 表字段信息Service接口
 * 用于定义表字段信息的业务逻辑方法
 */
public interface TableColumnService {
    /**
     * 保存表字段信息
     * @param column 表字段信息对象
     */
    void save(TableColumn column);

    /**
     * 批量保存表字段信息
     * @param columns 表字段信息列表
     */
    void batchSave(List<TableColumn> columns);

    /**
     * 更新表字段信息
     * @param column 表字段信息对象
     */
    void update(TableColumn column);

    /**
     * 根据ID获取表字段信息
     * @param id 表字段ID
     * @return 表字段信息对象
     */
    TableColumn getById(Long id);

    /**
     * 根据表结构ID获取所有字段信息
     * @param schemaId 表结构ID
     * @return 表字段信息列表
     */
    List<TableColumn> getBySchemaId(Long schemaId);

    /**
     * 根据表结构ID和字段名获取字段信息
     * @param schemaId 表结构ID
     * @param columnName 字段名
     * @return 表字段信息对象
     */
    TableColumn getBySchemaIdAndColumnName(Long schemaId, String columnName);

    /**
     * 删除表字段信息
     * @param id 表字段ID
     */
    void delete(Long id);

    /**
     * 根据表结构ID删除所有字段信息
     * @param schemaId 表结构ID
     */
    void deleteBySchemaId(Long schemaId);
}